1 package uba.db.sql.language;
2
3 import org.apache.commons.lang.builder.EqualsBuilder;
4 import org.apache.commons.lang.builder.HashCodeBuilder;
5
6 /***
7 * Representa un AND, en la clausa WHERE de una sentencia SQL.
8 *
9 * @version $Revision: 1.6 $
10 */
11 public class AndSelectionCriteria extends BinarySelectionCriteriaBehavior {
12 /***
13 * @param left termino izquierdo.
14 * @param right termino derecho.
15 */
16 public AndSelectionCriteria(SelectionCriteria left, SelectionCriteria right) {
17 super(left, right);
18 }
19
20 /***
21 * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
22 */
23 public void accept(Visitor visitor) {
24 visitor.visitAndSelectionCriteria(this);
25 }
26
27 /***
28 * @see java.lang.Object#equals(java.lang.Object)
29 */
30 public boolean equals(Object obj) {
31 return EqualsBuilder.reflectionEquals(this, obj);
32 }
33
34 /***
35 * @see java.lang.Object#hashCode()
36 */
37 public int hashCode() {
38 return HashCodeBuilder.reflectionHashCode(this);
39 }
40
41 /***
42 * @see uba.db.sql.language.BinarySelectionCriteriaBehavior#operatorAsString()
43 */
44 protected String operatorAsString() {
45 return " AND ";
46 }
47
48 /***
49 * @see uba.db.sql.language.SelectionCriteria#valueWith(uba.db.sql.language.EvaluationContext)
50 */
51 public Object valueWith(EvaluationContext context) {
52 Boolean valueLeft = (Boolean) (left().valueWith(context));
53 Boolean valueRight = (Boolean) (right().valueWith(context));
54 return new Boolean(valueLeft.booleanValue() && valueRight.booleanValue());
55 }
56 }